import { useUserStore } from '@/store/modules/user.js';

const checkPermission = (el, binding) => {
  const store = useUserStore();
  const { value } = binding;
  const roles = store.doubleRoles;
  if (value && value instanceof Array && value.length > 0) {
    const permissionRoles = value;
    if (permissionRoles[0] === '') {
      return true;
    }
    const hasPermission = roles.some((role) => {
      return permissionRoles.includes(role);
    });

    if (!hasPermission) {
      el.parentNode && el.parentNode.removeChild(el);
    }
  } else {
    throw new Error(`need roles! Like v-permission="['admin','editor']"`);
  }
};

export default {
  mounted(el, binding) {
    checkPermission(el, binding);
  },
  updated(el, binding) {
    checkPermission(el, binding);
  },
};
